// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	1/6/2015 10:28:28 AM				
// -----------------------------

#ifndef _HighPass_h
#define _HighPass_h

#include "SoundPass.h"

class Oscillator;

class HighPass : public SoundPass
{
public:
	Float			CutoffFrequency;
	Float			QualityFactor;
	Float			Gain;

	Bool			Modulate;
	SoundWaveType	ModulateType;
	Float			ModulateFrequency;
	Float			ModulateAmplitude;
	Int32			ModulateStrength;

	HighPass();
	virtual ~HighPass();

	virtual SoundSample		Apply(const SoundSample& input) const;

private:

	virtual Float			ModulateFreq(Oscillator* lpOsc, Float t) const;

	HighPass(const HighPass& refHighPass);
	HighPass& operator=(const HighPass& refHighPass);
};

#endif